package cn.good.yan;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * SpringBoot项目 - web 项目
 *   w1 Web 操作的Rest
 *   w2 登录页 请求
 *   w3 拦截器
 *   w4 上传文件
 *   w5 异常处理
 *   w6 静态文件
 *         ico小图标 在 /resources/public/favicon.ico 图 ，主页显示该图小图标
 *         静态文件  在 /resources/static/xxx.css   等待
 *         默认页    在 /resources/resources/index.html  默认主页
 *         前端页面  在 /resources/templates/每个页面
 *         错误机制error目录：默认显示 400/500的页面
 *   w7.国际化
 *        国际化配置 spring.messages.basename=i18n.home
 *        在 i18n目录下的home就是配置文件
 *        LocaleResoverLanguage 类配置国际化的拦截器
 *   w8.Boot移除tomcat启动，使用jetty、或者undertow启动器，需要改pom文件
 *           <dependency>
 *                 <groupId>org.springframework.boot</groupId>
 *                 <artifactId>spring-boot-starter-web</artifactId>
 *                 <!--t移除tomcat启动器-->
 *                 <exclusions>
 *                     <exclusion>
 *                         <artifactId>spring-boot-starter-tomcat</artifactId>
 *                         <groupId>org.springframework.boot</groupId>
 *                     </exclusion>
 *                 </exclusions>
 *             </dependency>
 *             <!--jetty启动器-->
 *             <dependency>
 *                 <groupId>org.springframework.boot</groupId>
 *                 <artifactId>spring-boot-starter-jetty</artifactId>
 *             </dependency>
 *             <!--undertow启动器-->
 *             <dependency>
 *                 <groupId>org.springframework.boot</groupId>
 *                 <artifactId>spring-boot-starter-undertow</artifactId>
 *             </dependency>
 *             # undertow 的yml 的 服务器配置
 *             undertow:
 *               # 设置IO线程数, 它主要执行非阻塞的任务,它们会负责多个连接, 默认设置每个CPU核心一个线程
 *               io-threads: 4
 *               # 阻塞任务线程池, 当执行类似servlet请求阻塞操作, undertow会从这个线程池中取得线程,它的值设置取决于系统的负载
 *               worker-threads: 20
 *               # 以下的配置会影响buffer,这些buffer会用于服务器连接的IO操作,有点类似netty的池化内存管理
 *               buffer-size: 1024
 *               # 是否分配的直接内存
 *               direct-buffers: true
 *
 * @author shengren.yan
 * @create 2023-10-01
 */
@SpringBootApplication
public class Main {
     public static void main(String[] args) {
        SpringApplication.run(Main.class, args);
     }
}